package rule;

/**
 * <p>
 * 规则的抽象接口
 * </P>
 *
 * @author dingwen
 * @date 2021.09.09 09:57
 */
public abstract class AbstractBaseRule<R, T> {

    /**
     * 执行
     *
     * @param ruleDto 规则dto
     * @return {@link Boolean}
     */
    Boolean executeBoolean(RuleDto<T> ruleDto) {
        return false;
    }



    /**
     * 执行
     *
     * @param ruleDto 规则dto
     * @return {@link R}
     */
    R executeObject(RuleDto<T> ruleDto) {
        return null;
    }

    /**
     * 执行
     * 没有返回值
     *
     * @param ruleDto 规则dto
     */
    void executeVoid(RuleDto<T> ruleDto){
    }
}
